1. Field of the Invention
The present invention relates to a computer system with multiple input/output devices that is capable of realizing highly reliable and innovative data transfer between the input/output devices and the computer.
The present invention also relates to an interface control device that is used to control interfaces in this type of computer system. More specifically, the present invention relates to an interface control device that can be used with the main body of the computer.
2. Description of the Related Art
In computer systems having a variety of input/output devices, data are transferred between the input/output devices and a single interface control device located in the main body of the computer. The interface control device must determine which of the multiple input/output devices sends the data. Therefore, each of the input/output devices is given a unique identification number (hereinafter referred to as “device number”). The interface control device notifies each input/output device of the device number before data transfer starts. The interface control device is then able to determine, based on the assigned device numbers, which input/output device transfers data.
When the interface control device gives authorization to an input/output device to begin data transfer, a linked mode is established between the interface control device and the input/output device, and data transfer begins. The amount of data transferred from the input/output device is variable. Regardless of the amount of data transferred, the linked mode between the interface control device and the input/output device cannot be released until the input/output device completes delivery of all the data. Thus, data cannot be transferred between the interface control device and one input/output device when a linked mode has already been established with another input/output device. As a result, when several input/output devices request data transfer from an interface control device virtually simultaneously, only one of these input/output devices can actually carry out the data transfer. The remaining input/output devices enter into a standby mode until the current data transfer is completed.
Upgrading the data transfer capability of the interface control device may not necessarily solve this problem. For example, if the data transfer rate of the input/output device is low, the overall transfer rate would be adjusted to that of the input/output device. Thus, the transfer capability of the interface control device is not used to the fullest capacity.
To resolve this problem, packet-type data transfer was devised for data transfer between the interface control device and the input/output devices. In packet-type data transfer, each of the input/output devices partitions the data to be transferred into specific amounts and transfers the partitioned data to the interface control device as packets. The packets continue to be sent from the input/output device to the interface control device until all the data is transferred.
With this configuration, transfer of each packet to the interface control device is intermittent, time-wise, when the transfer rate of the interface control device is faster than the data preparation speed of the input/output device. In other words, the passage of a constant amount of time occurs from the time transfer of the initial packet is completed to the time transfer of the next packet begins.
Thus, when multiple input/output devices request data transfer simultaneously, it is possible to interrupt transfer of the packets being sent from a certain input/output device to the interface control device during apertures between transmission of the packets. This approach eliminates the need for the input/output devices to wait in standby mode for data transfer. As a result, during a certain amount of time, data can be transferred from more than one input/output device to the interface control device, maximizing the transfer capability of the interface control device.
Despite this improvement, internal processing can become cluttered in the interface control device. For example, the interface control device has to confirm the transmission address when each packet is received. When this type of configuration is used, the input/output device at the transmission address may be different for each packet the interface control device receives. As a result, the interface control device must confirm the appropriateness, as well as the source, of all packets received. This proves to be extremely burdensome for the interface control device.
This burden can be clearly understood by considering an example in which 42,760 bytes of data are sent two bytes at a time from each of three input/output devices. The respective data transfers are carried out continuously. As a result, the interface control device is able to confirm the address only when there is a transmission request from each of the input/output devices. In the final analysis, the interface control device is able to confirm a total of only six transmission sources.
In contrast, when the same amount of data is sent in packet form and each packet contains 4,096 bytes, eleven packets are sent for each data transfer series. Each time the interface control device accepts a packet, it must make a decision a total of 66 times concerning which input/output device sent the packet, which data transfer the packet is a part of, and whether the packet is valid.
Thus, the burden placed on the interface control device when it carries out packet-type transfer is considerably greater than a linked mode form of transfer. Therefore, if the decision-making for each packet received in the interface control device is not carried out efficiently, the transfer efficiency cannot be upgraded as desired due to overhead.